/**     
 * @Title: SwaggerConfig.java   
 * @Package me.springboot.swagger   
 * @Description: TODO
 * @author weiwei 
 * @date 2017年9月1日 上午10:06:03   
 * @version V1.0     
 */
package me.springboot.swagger;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.mangofactory.swagger.configuration.SpringSwaggerConfig;
import com.mangofactory.swagger.models.dto.ApiInfo;
import com.mangofactory.swagger.plugin.EnableSwagger;
import com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin;

/**
 * @ClassName: SwaggerConfig
 * @Description: 配置Swagger UI测试API功能
 * @author weiwei
 * @date 2017年9月1日 上午10:06:03
 * 
 */
@Configuration
@EnableSwagger
public class SwaggerConfig {

	@Autowired
	private SpringSwaggerConfig springSwaggerConfig;

	@Bean
	public SwaggerSpringMvcPlugin customImplementation() {
		return new SwaggerSpringMvcPlugin(this.springSwaggerConfig).apiInfo(apiInfo()).includePatterns("/api/.*").apiVersion("1.0.0");
	}

	private ApiInfo apiInfo() {
		StringBuffer description = new StringBuffer();
		description.append("/api/××× 直接使用，不需要登录；<br>").append("/api/i/××× 需要使用HTTP Basic登录，或提供x-auth-token<br>")
				.append("包含参数Parameters Data Type=Pageable时，有三个通用参数可以使用,比如：size=20&page=0&sort=popular,desc，")
				.append("默认：size=20表明每页20行，page=0第几页，sort=popular,desc(asc默认正序，desc倒序)");
		ApiInfo apiInfo = new ApiInfo("API Server", description.toString(), null, null, null, null);
		return apiInfo;
	}
}
